// 分析控制台输出的脚本
// 用于帮助识别星痕共鸣游戏中的用户昵称和职业信息

const fs = require('fs');

// 职业映射
const professionMap = {

    8: '雷影剑士',
    9: '居合流',
    10: '雷影剑士-居合流',
};

// 分析日志文件中的用户信息
function analyzeLogFile(logContent) {
    console.log('🔍 开始分析日志文件...\n');
    
    const lines = logContent.split('\n');
    let foundUsers = new Map();
    
    lines.forEach((line, index) => {
        // 查找可能的UID
        const uidMatch = line.match(/UID[:\s]+(\d+)/i);
        if (uidMatch) {
            const uid = uidMatch[1];
            console.log(`📋 发现UID: ${uid} (行 ${index + 1})`);
        }
        
        // 查找可能的昵称（中文字符）
        const nameMatch = line.match(/["']([^"']*[\u4e00-\u9fa5]+[^"']*)["']/);
        if (nameMatch) {
            const name = nameMatch[1];
            if (name.length >= 2 && name.length <= 20) {
                console.log(`🎯 可能的昵称: "${name}" (行 ${index + 1})`);
            }
        }
        
        // 查找可能的职业ID
        const classMatch = line.match(/(?:class|job|profession)[:\s]*(\d+)/i);
        if (classMatch) {
            const classId = parseInt(classMatch[1]);
            if (professionMap[classId]) {
                console.log(`⚔️ 发现职业: ${professionMap[classId]} (ID: ${classId}) (行 ${index + 1})`);
            }
        }
        
        // 查找数据包类型
        const packetMatch = line.match(/Packet type: ([^,]+)/);
        if (packetMatch) {
            console.log(`📦 数据包类型: ${packetMatch[1]} (行 ${index + 1})`);
        }
        
        // 查找body keys
        const keysMatch = line.match(/body keys: ([^,]+)/);
        if (keysMatch) {
            console.log(`🔑 Body keys: ${keysMatch[1]} (行 ${index + 1})`);
        }
    });
    
    console.log('\n📊 分析完成！');
    console.log('💡 提示：');
    console.log('1. 在游戏中多进行战斗，产生更多数据包');
    console.log('2. 观察控制台输出的"🎯 Found nickname"和"⚔️ Found profession"信息');
    console.log('3. 如果看到职业ID，可以告诉我，我会更新职业映射');
}

// 如果直接运行此脚本
if (require.main === module) {
    console.log('🚀 星痕共鸣用户信息分析工具');
    console.log('================================\n');
    
    // 检查是否有日志文件
    const logFile = 'server.log';
    if (fs.existsSync(logFile)) {
        const content = fs.readFileSync(logFile, 'utf8');
        analyzeLogFile(content);
    } else {
        console.log('📝 没有找到日志文件，请先运行服务器并产生一些日志');
        console.log('💡 建议：');
        console.log('1. 启动服务器: node server.js');
        console.log('2. 在游戏中进行战斗');
        console.log('3. 观察控制台输出');
        console.log('4. 查找包含"🎯"和"⚔️"的信息');
    }
}

module.exports = { analyzeLogFile, professionMap }; 